Http restTemplate请求400 Bad Request 您所在的位置:网站首页 postman post请求400 Http restTemplate请求400 Bad Request

Http restTemplate请求400 Bad Request

2023-11-15 07:35| 来源: 网络整理| 查看: 265

       近期再使用一个http调用时,写完服务端代码使用postman测试后没有问题,发布客户端调用时一直报错,400 bad request,可以知道是客户端有问题。但是通过postman可以使用,唯一区别是程序是把对象转换成了json串使用restTemplate调用的,postman通过拼接的json串,传递的对象内包含了日期字段,感觉这个字段可能会有问题,在本地写了一个test类,再屏蔽掉日期字段后发现可以正常调用服务,找到问题所在,就是如何解决问题了。

      服务端是用@RequestBody接受的参数,应该是日期参数在反序列化的时候出错了,网上给出的答案推荐是传递的对象最好都是String类型的,不会出现类型匹配错误问题,但是涉及数据类型转变,代码中需要转换比较麻烦,继续查询资料,发现了这个注解:

@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")

      @JsonFormat是fasterxml里的注解,使用需要引入依赖,测试后可以很完美解决问题,如果不加timezone会出现八小时时差问题。虽然传递对象在设置日期参数时可能已经格式化了相应格式,但是在转换json串时还是会有问题,但是请求服务不通。具体@JsonFormat注解的原理可参考:

https://www.jianshu.com/p/1031c09da1db

      网上当然还有很多原因导致400 bad request,比如get/post方法使用不当,contentType设置不一致,请求数据太大,请求数据中包含特殊字符等,可以在遇到问题时手动断点跟入确认相应问题。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有